home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ABUSESRC.ZIP / AbuseSrc / abuse / src / putline.asm < prev    next >
Assembly Source File  |  1996-01-22  |  1KB  |  79 lines

  1.  
  2.     .386
  3.     .MODEL    small 
  4.  
  5. .code
  6.  
  7. ; parm1 = scrn addr
  8. ; parm2 = remap addr
  9. ; parm3 = scrwidth
  10.  
  11. ALIGN 16
  12. PUBLIC    remap_line_asm_
  13. remap_line_asm_:
  14.  
  15.     push    ebp
  16.     push    esi
  17.     push    edi
  18.     sub        esp, 32
  19.  
  20.     mov        esi, eax    ; esi = screen addr
  21.     mov        eax, edx    ; eax = remap_table
  22.     mov        edi, ebx    ; edi = remap_seq
  23.     mov        ebp, ecx    ; ebp = remap_seq_len
  24.  
  25.         cmp             ebp, 0
  26.         je              remap_end
  27.  
  28.     mov        ah, [edi]
  29.     mov        ebx, eax
  30.     jmp        remap_loop
  31.  
  32. ALIGN    16
  33. remap_loop:
  34.  
  35.     mov        al, [esi]
  36.     mov        bl, 1[esi]
  37.     mov        al, [eax]
  38.     mov        bl, [ebx]
  39.     mov        [esi], al
  40.     mov        1[esi], bl
  41.     mov        al, 2[esi]
  42.     mov        bl, 3[esi]
  43.     mov        al, [eax]
  44.     mov        bl, [ebx]
  45.     mov        2[esi], al
  46.     mov        3[esi], bl
  47.  
  48.     mov        al, 4[esi]
  49.     mov        bl, 5[esi]
  50.     mov        al, [eax]
  51.     mov        bl, [ebx]
  52.     mov        4[esi], al
  53.     mov        5[esi], bl
  54.     mov        al, 6[esi]
  55.     mov        bl, 7[esi]
  56.     mov        al, [eax]
  57.     mov        bl, [ebx]
  58.     mov        6[esi], al
  59.     mov        7[esi], bl
  60.  
  61.     add        esi, 8
  62.     add        edi, 1
  63.     mov        ah, [edi]
  64.     mov        ebx, eax
  65.     dec        ebp
  66.     jne        remap_loop
  67.  
  68. remap_end:
  69.     add        esp, 32
  70.     pop        edi
  71.     pop        esi
  72.     pop        ebp
  73.     ret
  74.  
  75. ; ENDP
  76.  
  77. END
  78.  
  79.